﻿/**
 * AbstractShape
 *
 * @author		Allen Chou
 * @version		1.1.1 (last update: Dec 15 2008)
 * @link        http://cjcat.blogspot.com
 * @link		http://cjcat2266.deviantart.com
 */

package idv.cjcat.display.shapes {
	import flash.display.Shape;
	import flash.events.Event;
	import flash.errors.IllegalOperationError;
	
	import idv.cjcat.display.*;
	
	/**
	 * The <code>AbstractShape</code> class is to be used as a base class for custom shape classes.
	 */
	public class AbstractShape extends Shape implements IRenderable {
		
		/**
		 * The line style of the shape, transparent if set to <code>null</code>.
		 */
		public var fill:Fill;
		/**
		 * The fill of the shape, transparent if set to <code>null</code>.
		 */
		public var lineStyle:LineStyle;
		
		/**
		 * This is an abstract class and should not be instantiated.
		 */
		public function AbstractShape() {
			lineStyle = new LineStyle();
			fill = new Fill();
		}
		
		/**
		 * This is an abstract method and should be overriden.
		 * <p>This method can be used as an event listener</p>
		 */
		public function render(e:Event = null):void {
			
		}
		
	}
}